const utils_function = require('../utils/index')
const configs = require('../config')
// 包含page 和 size 参数的请求，这两个参数的检验有这个中间件完成
const page_size_urls = configs.has_page_and_size_parameter_urls

/**
 * page 和 size 中间件
 * @param {*} req 
 * @param {*} res 
 * @param {*} next 
 */

const check_page_and_size = function(req, res, next) {
    // console.log(colors('cyan', '检查参数中间件'))
    // console.log(colors('cyan', '请求url :', req._parsedUrl.pathname))
    // 如果不需要检查就跳过这个中间件
    if (!page_size_urls.includes(req._parsedUrl.pathname)) {
        next()
        return
    }
    if (req.query.page!= undefined && req.query.size!=undefined) {
        // console.log('size :', req.query.size)
        // console.log('pageNum :', req.query.page)
        // console.log(utils_function.zheng_shu(req.query.page))
        if (!utils_function.zheng_shu(req.query.page)) {
            res.json({
                message: '参数page格式有误'
            })
            return
        } else if (!utils_function.zheng_shu(req.query.size)) {
            res.json({
                message: '参数size格式有误'
            })
            return
        }
        next()
        return

    } else {
       if (!res.query.page) {
           res.json({
               message: '参数page不存在'
           })
           return
       } else if (!res.query.size) {
           res.json({
               message: '参数size不存在'
           })
           return
       }
       res.json({
           message: '参数有误'
       })
       return
    }
}

module.exports = check_page_and_size